adjust WECHAT in settings.py & use django-logit

Brightcells 9 gadi atpakaļ
vecāks
revīzija
0e1b1fb160
3 mainītis faili ar 49 papildinājumiem un 9 dzēšanām
  1. 38 7
      pai2/settings.py
  2. 10 2
      pay/views.py
  3. 1 0
      requirements.txt

+ 38 - 7
pai2/settings.py

@@ -149,6 +149,35 @@ MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
149 149
 
150 150
 MEDIA_URL = '/media/'
151 151
 
152
+# logger setting
153
+LOGGING = {
154
+    'version': 1,
155
+    'disable_existing_loggers': False,
156
+    'formatters': {
157
+        'verbose': {
158
+            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
159
+        },
160
+        'simple': {
161
+            'format': '%(levelname)s %(message)s'
162
+        },
163
+    },
164
+    'handlers': {
165
+        'logit': {
166
+            'level': 'DEBUG',
167
+            'class': 'logging.FileHandler',
168
+            'filename': '/tmp/logit.log',
169
+            'formatter': 'verbose'
170
+        },
171
+    },
172
+    'loggers': {
173
+        'logit': {
174
+            'handlers': ['logit'],
175
+            'level': 'DEBUG',
176
+            'propagate': True,
177
+        },
178
+    },
179
+}
180
+
152 181
 # REST_FRAMEWORK 设置
153 182
 # See http://www.django-rest-framework.org/#example
154 183
 REST_FRAMEWORK = {
@@ -180,16 +209,18 @@ REDIS_EXPIRED_YEAR = 31622400  # 366 * 24 * 60 * 60
180 209
 
181 210
 # 微信设置
182 211
 WECHAT = {
183
-    'token': '5201314',
184
-    'appID': '',
185
-    'appsecret': '',
186
-    'mchID': '',
187
-    'apiKey': '',
212
+    'JSAPI': {
213
+        'token': '5201314',
214
+        'appID': '',
215
+        'appsecret': '',
216
+        'mchID': '',
217
+        'apiKey': '',
218
+    },
188 219
 }
189 220
 
190
-WECHAT_GET_CODE = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_base&state=%s#wechat_redirect'
221
+WECHAT_GET_CODE_BASE = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_base&state=%s#wechat_redirect'
191 222
 WECHAT_GET_CODE_USERINFO = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_userinfo&state=%s#wechat_redirect'
192
-WECHAT_GET_ACCESS_TOKEN = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code'
223
+WECHAT_GET_OAUTH2_ACCESS_TOKEN = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code'
193 224
 
194 225
 WECHAT_GET_USERINFO = 'https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s'
195 226
 

+ 10 - 2
pay/views.py

@@ -10,16 +10,18 @@ from pay.models import OrderInfo
10 10
 from utils.error.errno_utils import OrderStatusCode
11 11
 from utils.error.response_utils import response
12 12
 
13
+from logit import logit
14
+
13 15
 from TimeConvert import TimeConvert as tc
14 16
 from wechatpy import WeChatPay, WeChatPayException
15 17
 
16 18
 import xmltodict
17 19
 
18
-WECHAT = settings.WECHAT
19 20
 
20
-wxpay = WeChatPay(WECHAT['appID'], WECHAT['apiKey'], WECHAT['mchID'])
21
+WECHAT = settings.WECHAT
21 22
 
22 23
 
24
+@logit
23 25
 @transaction.atomic
24 26
 def wx_order_create_api(request):
25 27
     """
@@ -37,6 +39,11 @@ def wx_order_create_api(request):
37 39
     # JSAPI--公众号支付、NATIVE--原生扫码支付、APP--app支付,统一下单接口trade_type的传参可参考这里
38 40
     trade_type = request.POST.get('trade_type', '')
39 41
 
42
+    # 根据 trade_type 获取 wechat 配置
43
+    wechat = WECHAT.get(trade_type, {})
44
+    # WeChatPay 初始化
45
+    wxpay = WeChatPay(wechat.get('appID'), wechat.get('apiKey'), wechat.get('mchID'))
46
+
40 47
     # 生成订单
41 48
     order = OrderInfo.objects.create(from_uid=from_uid, to_lid=to_lid, to_uid=to_uid, total_fee=total_fee)
42 49
 
@@ -74,6 +81,7 @@ def order_paid_success(order):
74 81
     order.save()
75 82
 
76 83
 
84
+@logit
77 85
 @transaction.atomic
78 86
 def wx_notify_url_api(request):
79 87
     """

+ 1 - 0
requirements.txt

@@ -4,6 +4,7 @@ MySQL-python==1.2.5
4 4
 TimeConvert==1.1.6
5 5
 cryptography==1.2.1
6 6
 django-curtail-uuid==1.0.0
7
+django-logit==1.0.0
7 8
 django-multidomain==1.1.4
8 9
 django-shortuuidfield==0.1.3
9 10
 djangorestframework==3.3.1